package com.example.websocket.service.impl;

import com.example.websocket.mapper.FriendsMapper;
import com.example.websocket.mapper.MessageMapper;
import com.example.websocket.pojo.dto.MessageDto;
import com.example.websocket.pojo.dto.UserListDto;
import com.example.websocket.service.MessageService;
import io.micrometer.common.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @ author 韩
 * time: 2024/3/13 20:39
 */

@Service
public class MessageServiceImpl implements MessageService {

    @Autowired
    private MessageMapper messageMapper;

    @Autowired
    private FriendsMapper friendsMapper;
    @Override
    public List<UserListDto> getMessageList(String username) {
        // 显示在message中查出来列表中的用户名 然后通过用户名来查询对应的备注是否存在
        // 有备注写备注 没备注写用户名
        // 都要传 去前端判断 因为username是必传的
        List<String> messageList = messageMapper.getMessageList(username);
        ArrayList<UserListDto> list = new ArrayList<>();
        messageList.forEach(friendName -> {
            String note = friendsMapper.selectNote(username, friendName);
            UserListDto dto = new UserListDto();
            dto.setNote(note);
            dto.setFriend_name(friendName);
            list.add(dto);
        });

        return list;
    }

    @Override
    public Boolean addMessage(MessageDto dto) {
        return messageMapper.addMessage(dto.getUsername(),dto.getMessage_name());
    }

    @Override
    public List<UserListDto> searchMessage(String username, String key) {

        // 显示在message中查出来列表中的用户名 然后通过用户名来查询对应的备注是否存在
        // 有备注写备注 没备注写用户名
        // 都要传 去前端判断 因为username是必传的
        List<String> messageList = messageMapper.getMessage(username,key);
        List<UserListDto> list = new ArrayList<>();
        messageList.forEach(friendName -> {
            String note = friendsMapper.selectNote(username, friendName);
            UserListDto dto = new UserListDto();
            dto.setNote(note);
            dto.setFriend_name(friendName);
            list.add(dto);
        });
        return list;
    }
}
